package com.xbongbong.saas.model;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.IModel;
import com.xbongbong.pro.domain.entity.DetailTabConfigEntity;

import java.util.List;
import java.util.Map;

/**
 * @author feng.zheng
 * @version v1.0
 * @date 2019/6/22 16:44
 * @since v1.0
 */
public interface DetailTabConfigModel extends IModel<DetailTabConfigEntity> {

    /**
     * 保存
     *
     * @param entity 实体
     * @return 是否成功
     * @throws XbbException 数据库操作异常
     */
    Integer save(DetailTabConfigEntity entity) throws XbbException;

    /**
     * 根据查询条件查出集合
     *
     * @param param 参数
     * @return 配置
     * @author feng.zheng
     * @date 2019/6/25 10:40
     */
    @Override
    List<DetailTabConfigEntity> findEntitys(Map<String, Object> param);


    /**
     * 获取详情配置
     *
     * @param corpid 公司id
     * @param businessType 业务类型
     * @param formId 表单id
     * @return
     */
    DetailTabConfigEntity getEntityByBusinessTypeAndFormId(String corpid, String userId, Integer businessType, Long formId);

    /**
     * 数据单条查询
     *
     * @param key    主键ID
     * @param corpid 公司ID
     * @return Integer
     */
    DetailTabConfigEntity getByKey(Long key, String corpid);

    /**
     * 根据id删除
     *
     * @param key    主键
     * @param corpid 公司id
     * @return Integer
     * @date 2019/6/22 20:23
     */
    Integer deleteByKey(Long key, String corpid) throws XbbException;
    
    /**
     * 处理批量更新(合同、客户的tab)
     * @param list
     * @throws XbbException
     */
    Integer updateBatch(List<DetailTabConfigEntity> list) throws XbbException;

    Integer insertBatch(List<DetailTabConfigEntity> insertList);
}
